Hereinafter, a conventional communication system that employs LDPC codes as an encoding system will be explained. Here, a case in which quasi-cyclic (QC) codes (see Non-patent Document 1) are employed as one example of the LDPC codes will be explained.
First, a flow of encoding/decoding processing in the conventional communication system that employs the LDPC codes as the encoding system will be explained briefly.
An LDPC encoder in a communication apparatus on a transmission-side (it is called a transmission apparatus) generates a parity check matrix H by a conventional method that will be explained below. Further, the LDPC encoder generates, for example, a generator matrix G with K-row×N-column (K: information length, N: code length). Note that when the parity check matrix for LDPC is defined as H (M-row×N-column), the generator matrix G will be a matrix that satisfies GHT=0 (T is a transposed matrix).
Thereafter, the LDPC encoder receives messages (m1, m2, . . . , mK) with the information length K to generate a code C as represented by following Equation (1) using these messages and the generator matrix G, where H(c1, C2 . . . , CN)T=0.
                                                                           C                =                                ⁢                                                      (                                                                  m                        1                                            ,                                              m                        2                                            ,                      …                      ⁢                                                                                          ,                                              m                        K                                                              )                                    ⁢                  G                                                                                                        =                                ⁢                                  (                                                            c                      1                                        ,                                          c                      2                                        ,                    …                    ⁢                                                                                  ,                                          c                      N                                                        )                                                                                          (          1          )                    
A modulator in the transmission apparatus then performs digital modulation to the code C generated by the LDPC encoder according to a predetermined modulation system, such as binary phase shift keying (BPSK), quadrature phase shift keying (QPSK), multi-value quadrature amplitude modulation (QAM), and transmits a modulated signal x=(x1, x2, . . . , xN) to a reception apparatus.
Meanwhile, in a communication apparatus on a reception-side (which is called a reception apparatus), a demodulator performs digital demodulation to a received modulated signal y=(y1, Y2, . . . , YN) according to the modulation system such as BPSK, QPSK, multi-value QAM, or the like, and an LDPC decoder in the reception apparatus further performs repetition decoding to demodulated results based on a “sum-product algorithm” to thereby output the decoded results (corresponding to the original messages m1, m2, . . . , mK).
The conventional parity check-matrix generating method for the LDPC codes will now be explained concretely. As the parity check matrix for the LDPC codes, a following parity check matrix of QC codes is proposed, for example, in following Non-patent Document 1 (see FIG. 17). The parity check matrix of the QC codes shown in FIG. 17 is a matrix in which cyclic permutation matrices (P=5) with 5-row×5-column are arranged in a vertical direction (J=3) and in a horizontal direction (L=5).
Generally, a parity check matrix HQC of the (J, L) QC codes with M (=pJ) rows×N (=pL) columns can be defined as following Equation (2). Incidentally, p is an odd prime number (other than 2), L is the number of cyclic permutation matrices in the parity check matrix HQC in a transverse direction (column direction), and J is the number of cyclic permutation matrices in the parity check matrix HQC, in a longitudinal direction (row direction).
                    [                  Numerical          ⁢                                          ⁢          Expression          ⁢                                          ⁢          1                ]                                                                                  H            QC                    =                      [                                                                                I                    ⁡                                          (                                              p                                                  0                          ,                          0                                                                    )                                                                                                            I                    ⁡                                          (                                              p                                                  0                          ,                          1                                                                    )                                                                                        …                                                                      I                    ⁡                                          (                                              p                                                  0                          ,                          1                          ,                                                      -                            1                                                                                              )                                                                                                                                        I                    ⁡                                          (                                              p                                                  1                          ,                          0                                                                    )                                                                                                            I                    ⁡                                          (                                              p                                                  1                          ,                          1                                                                    )                                                                                        …                                                                      I                    ⁡                                          (                                              p                                                  1                          ,                                                      L                            -                            1                                                                                              )                                                                                                                    ⋮                                                  ⋮                                                  ⋱                                                  ⋮                                                                                                  I                    ⁡                                          (                                              p                                                                              J                            -                            1                                                    ,                          0                                                                    )                                                                                                            I                    ⁡                                          (                                              p                                                                              J                            -                            1                                                    ,                          1                                                                    )                                                                                        …                                                                      I                    ⁡                                          (                                              p                                                                              J                            -                            1                                                    ,                                                      L                            -                            1                                                                                              )                                                                                            ]                          ⁢                                  ⁢                  example          ⁢                      :                          ⁢                                  ⁢                              p            =            5                    ,                                    1              ⁢                              (                0                )                                      =                          [                                                                    1                                                        0                                                        0                                                        0                                                        0                                                                                        0                                                        1                                                        0                                                        0                                                        0                                                                                        0                                                        0                                                        1                                                        0                                                        0                                                                                        0                                                        0                                                        0                                                        1                                                        0                                                                                        0                                                        0                                                        0                                                        0                                                        1                                                              ]                                                          (        2        )            
Where, in 0≦j≦J−1 and 0≦l≦L−1, I(pj,l) are cyclic permutation matrices in which positions of a row index: r (0≦r≦P−1), and a column index: “(r+pj,l)mod p” are “1”, and other positions are “0”.
In addition, when the LDPC codes are designed, performance degradation generally occurs when there are many loops with a short length, and thus it is necessary to increase an internal diameter and to reduce the number of loops with the short length (loop 4, loop 6, or the like).
Incidentally, FIG. 18 is a view showing one example of the check matrix represented by a Tanner graph, wherein in the binary parity check matrix H of {0, 1} with M-row×N-column, nodes corresponding to each column are called bit nodes bn (1≦n≦N) (corresponding to circles in the figure), and nodes corresponding to each row are called check nodes cm (1≦m≦M) (corresponding to rectangles in the figure), and further, when there is “1” at an intersection of the row and the column of the check matrix, a bipartite graph in which the bit nodes and the check nodes are connected with branches is called the Tanner graph. In addition, the loop represents a closed loop that starts from a specific node (corresponding to circles and rectangles in the figure) and ends at that node as shown in FIG. 18, and the internal diameter means the minimum loop thereof. Moreover, a loop length is represented by the number of branches constituting the closed loop, and is simply represented as loop 4, loop 6, loop 8, . . . according to the length.
Meanwhile, in following Non-patent Document 1, a range of an internal diameter g in the parity check matrix HQC of (J,L) QC-LDPC codes is given by “4≦g≦12 (where g is an even number)”. However, it is easy to avoid g=4 and, and it results in g≧6 in many cases.    Non-patent Document 1: M. Fossorier, “quasi-cyclic Low Density Parity Check Code”, ISIT2003, p. 150, Japan, Jun. 29-Jul. 4, 2003.